The invention enables size and cost reductions for low-cost electronic devices based on embedded microprocessors with memory requirements for fixed data such as look-up tables or programs.
Electronic devices often use microprocessors to perform a variety of tasks ranging from the very simple to the very complicated. When a device, such as a remote control device, a mobile device, etc., is designed for a specific function or functions, the programs corresponding to those functions are usually, once development is complete, stored in a Read Only Memory (ROM). Other fixed data may also be stored in ROM, such as a look-up table for values of some function required for computation, such as an exponential or logarithm function, or trigonometric functions.
A low cost and compact form of ROM is Mask Programmed ROM. In a Mask-Programmed ROM, the address is decoded to provide a logic level on one of a number of signal lines corresponding to the address. The address lines cross the bit lines corresponding to the desired output word, and a transistor is placed at the crossing of every address line and bit line where a binary “1” is the desired bit output for that address. Such a ROM is in fact equivalent to a gigantic OR-gate for each output bit, determining it to be a “1” if address A1.OR.A2.0R.A3 . . . is active, else determining it to be a “0”.
The transistors used to indicate a stored ‘1’ provide the inputs to each multi-input OR gate. FIG. 1 shows such a ROM, wherein a word of length 32 bits is stored against each of 1024 addresses. Where a larger memory is desired, the pattern of FIG. 1 may be repeated to form successive rows of 1024 words, and row-select lines are provided to enable output from a selected row, which, together with activation of a particular column address line, selects a particular word.
The transistors are placed by means of a custom-designed diffusion and/or contact and/or metallization mask used during the fabrication process, adapted for the desired bit pattern. Since mask-making is expensive, this is used only when the ROM contents are expected to be fixed for high volumes of production units. Other forms of memory, such as Electronically or UV-erasable and Reprogrammable Read Only Memory (EAROM, EEROM, EPROM, “FLASH” memory, etc.) and other more recent non-volatile memory developments such as ferroelectric memory are therefore more usually selected in preference to Masked ROM because of the convenience that the memory may be manufactured before the desired contents are known and filled later, as well as modified in-service. It might be said that the silicon area and consequent cost advantage of Mask Programmed ROM have to date not been sufficient to outweigh the convenience of in-situ programming.
Some solutions that could give the advantages of Masked ROM while preserving some flexibility comprise storing mature sections of program, i.e., subroutines, or fixed tables for mathematical functions or character set displays in Masked ROM, but linking and invoking them by a smaller program in reprogrammable memory. That way, if a Masked-ROM routine needs to be replaced, the replacement routine only need be placed in reprogrammable memory and the Masked-ROM version bypassed, a process known as “patching”. However, the area advantages of Masked ROM have still not been sufficient to encourage widespread use of this technique. Thus, there is a need for fixed-content memory that is significantly more compact and economic than Masked ROM has been hitherto.